Exchange state halos at every Runge-Kutta stage#377
Exchange state halos at every Runge-Kutta stage#377mwarusz wants to merge 1 commit intoE3SM-Project:developfrom
Conversation
TestingCTest unit tests
Polaris
|
There was a problem hiding this comment.
Pull request overview
Ensures state-variable halo data is valid at every Runge–Kutta stage so velocity
hyper-diffusion (del4) tendencies are consistent across MPI decompositions,
fixing #376.
Changes:
- RK4: exchange provisional state halos at every stage (not just a single
stage). - RK2: exchange midpoint state halos before evaluating midpoint tendencies.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| components/omega/src/timeStepping/RungeKutta4Stepper.cpp | Exchanges provisional state halos at each RK stage before computing tendencies. |
| components/omega/src/timeStepping/RungeKutta2Stepper.cpp | Exchanges midpoint state halos prior to midpoint tendency evaluation. |
brian-oneill
left a comment
There was a problem hiding this comment.
Looks good, ran the ctests successfully on pm-cpu and frontier CPU & GPU. Approved based on inspection and @mwarusz's polaris testing above.
#354 added a halo exchange for tracers at every Runge-Kutta stage. To have valid halo data for the del4 velocity tendency, we also need to perform it at every stage for the state variables.
Fixes #376.
Checklist
Testingwith the following:have been run on and indicate that are all passing.
has passed, using the Polaris
e3sm_submodules/Omegabaseline-pfor both the baseline (Polarise3sm_submodules/Omega) and the PR build